package com.ant.storage.pojo;

import com.ant.storage.vo.MonthlySettlementVo;
import com.ant.storage.vo.PurchaseDetailsVo;
import com.ant.storage.vo.PurchaseVo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 
 * </p>
 *
 * @author melon
 * @since 2022-04-13
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("purchaser_record")
@ApiModel(value="PurchaserRecord对象", description="")
public class PurchaserRecord implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @ApiModelProperty(value = "编号")
    @TableField("record_number")
    private String recordNumber;

    @ApiModelProperty(value = "城市id")
    @TableField("city_id")
    private Integer cityId;

    @ApiModelProperty(value = "申购单id")
    @TableField("parent_id")
    private Integer parentId;

    @ApiModelProperty(value = "供应商id")
    @TableField("supplier_id")
    private Integer supplierId;

    @ApiModelProperty(value = "采购人")
    @TableField("purchaser_id")
    private Integer purchaserId;

    @ApiModelProperty(value = "冲账金额")
    @TableField("red_amount")
    private BigDecimal redAmount;

    @ApiModelProperty(value = "报销金额")
    @TableField("reimbursement_amount")
    private BigDecimal reimbursementAmount;

    @ApiModelProperty(value = "退款金额")
    @TableField("refund_amount")
    private BigDecimal refundAmount;

    @ApiModelProperty(value = "申请金额")
    @TableField("total_price")
    private BigDecimal totalPrice;

    @ApiModelProperty(value = "实际采购金额")
    @TableField("consume_price")
    private BigDecimal consumePrice;

    @ApiModelProperty(value = "类型 1 零星采购  2 计划采购 3 月结 4 车蚂蚁")
    private Integer types;

    @ApiModelProperty(value = "采购类型")
    @TableField(exist = false)
    private String purchaseType;

    @ApiModelProperty(value = "钉钉id")
    @TableField("process_instance_id")
    private String processInstanceId;

    @ApiModelProperty(value = "备注")
    private String remarks;

    @ApiModelProperty(value = "图片id")
    @TableField("img_url_id")
    private String imgUrlId;

    @ApiModelProperty(value = "钉钉审核状态  1 未审核  2 通过 3 不通过 4 撤销")
    @TableField("nailing_status")
    private Integer nailingStatus;

    @ApiModelProperty(value = "  状态  0 未通过  1 通过 2 不通过 3 不展示 4 撤销" )
    private String statues;

    @ApiModelProperty(value = "处理人")
    private Integer handlers;

    @ApiModelProperty(value = "处理时间")
    @TableField("handler_time")
    private Date handlerTime;

    @TableField("creation_time")
    private Date creationTime;

    @ApiModelProperty(value = "申请结算的采购物品清单")
    @TableField(exist = false)
    private List<PurchaseVo> PurchaseVo;

    @ApiModelProperty(value = "申请结算的采购物品清单2")
    @TableField(exist = false)
    private List<PurchaseDetailsVo> PurchaseDetailsVo;


    @ApiModelProperty(value = "采购单")
    @TableField(exist = false)
    private List<Subscribe> subscribeList;

    @ApiModelProperty(value = "供应商")
    @TableField(exist = false)
    private  SupplierInformation  supplierInformationList;

//    @ApiModelProperty(value = "采购票据")
//    @TableField(exist = false)
//    private List<PurchaserRecordImg>  purchaserRecordImgList;

    @ApiModelProperty(value = "月结信息")
    @TableField(exist = false)
    private  List<MonthlySettlementVo>  monthlySettlementVos;

    @ApiModelProperty(value = "处理信息")
    @TableField(exist = false)
    private  List<MonthlySettlementLog>  monthlySettlementLogs;

    @ApiModelProperty(value = "审批")
    @TableField(exist = false)
    private  List<AuditList>  auditList;


    @ApiModelProperty(value = "票据")
    @TableField(exist = false)
    private  List<PurchaserRecordImg>  imgList;


    @ApiModelProperty(value = "审核记录")
    @TableField(exist = false)
    private ApprovalMsg approvalMsgList;



}
